import { Exclude, Transform } from 'class-transformer';
import * as dayjs from 'dayjs';

export class UserVo {
  /** 主键 */
  id: number;

  /** 姓名 */
  name: string;

  /** 年龄 */
  age: number;

  // 响应参数中排除此字段
  @Exclude()
  /** 存款 */
  money: number;

  /** 邮箱 */
  email: string;

  // 通过 dayjs 将响应参数中此字段转换为适合前端展示的格式
  @Transform((params) => dayjs(params.value).format('YYYY-MM-DD HH:mm:ss'))
  /** 创建时间 */
  createTime: Date;

  @Transform((params) => dayjs(params.value).format('YYYY-MM-DD HH:mm:ss'))
  /** 更新时间 */
  updateTime: Date;

  constructor(data: Partial<UserVo>) {
    Object.assign(this, data);
  }
}
